#include <bits/stdc++.h>

char map[101][101];

int notStar[101][101] = {0};
std::map<char, int> myMap;
int n = 0;

int x_offset[8] = {1, -1, 0, 0, 1, -1, 1, -1};
int y_offset[8] = {0, 0, 1, -1, 1, -1, -1, 1};

std::string str = "yizhong";

void init_map()
{
    for(int i = 0; i < str.length(); i++){
        myMap[str[i]] = i;
    }

}

bool dfs(int x, int y, char e, int offset)
{
    int x1 = x + x_offset[offset];
    int y1 = y + y_offset[offset];
    char target = map[x1][y1];
    if(target == e){
        if(e == 'g'){
            notStar[x1][y1] = 1;
            return true;
        }else{
            if(dfs(x1, y1, str[myMap[e] + 1], offset)){
                notStar[x1][y1] = 1;
                return true;
            }else{
                return false;
            }
        }
    }else{
        return false;
    }
}


int main()
{
    init_map();

    std::cin >> n;
    for(int i = 0 ; i < n ; i++){
        for(int j = 0; j < n ; j++){
            std::cin >> map[i][j];
        }
    }

    for(int i = 0 ; i < n; i++){
        for(int j = 0 ; j < n ; j++){
            if(map[i][j] == 'y'){
                for(int k = 0; k < 8; k++){
                    bool flag = dfs(i, j, 'i', k);
                    if(flag) notStar[i][j] = 1;
                }
            }
        }
    }

    for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++){
            if(notStar[i][j])
                std::cout<<map[i][j];
            else 
                std::cout << '*';
        }
        std::cout << std::endl;
    }
    return 0;
}